home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Libraries / DCLAP 4j / SeqPups / apps / clustalw.src / clustalw.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-12-17  |  3.0 KB  |  138 lines  |  [TEXT/R*ch]

  1. /* Clustal W #1.4  September 1994 */
  2.  
  3.  
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include <stdlib.h>
  7. #ifdef THINK_C
  8. #include <console.h>
  9. #endif
  10. #include "clustalw.h"
  11.  
  12. /*
  13. *    Prototypes
  14. */
  15.  
  16. extern void *ckalloc(size_t);
  17. extern void init_amenu(void);
  18. extern void init_matrix(void);
  19. extern void fill_chartab(void);
  20. extern void parse_params(void);
  21. extern void main_menu(void);
  22.  
  23. static void alloc_mem(void);
  24.  
  25. /*
  26. *    Global variables
  27. */
  28. double **tmat;
  29.  
  30. float revision_level = 1.4;    /* DES SEPT. 1994 */
  31. float           gap_open,      gap_extend;
  32. float           pw_go_penalty, pw_ge_penalty;
  33.  
  34. FILE *fin,*tree;
  35. FILE *clustal_outfile, *gcg_outfile, *nbrf_outfile, *phylip_outfile,
  36.      *gde_outfile;
  37. FILE     *phylip_phy_tree_file;
  38. int  *seqlen_array;
  39. int usermat[NUMRES*NUMRES], pw_usermat[NUMRES*NUMRES];
  40. int def_aa_xref[NUMRES],aa_xref[NUMRES], pw_aa_xref[NUMRES];
  41. int mat_avscore;
  42. int nseqs;
  43. int first_seq,last_seq;
  44. int nsets;
  45. int max_aa;
  46. int gap_pos1;
  47. int gap_pos2;
  48. int *output_index;
  49. int **sets;
  50. int *seq_weight;
  51. /* prfalign.c statics -- dgg */
  52. int * displ, * gaps, * HH, * DD, * RR, * SS;
  53.  
  54. Boolean usemenu;
  55. Boolean dnaflag;
  56. Boolean distance_tree;
  57.  
  58. char  **seq_array;
  59. char **names,**titles;
  60. char *paramstr;
  61. char seqname[FILENAMELEN+1],treename[FILENAMELEN+1];
  62. char phylip_phy_tree_name[FILENAMELEN+1];
  63.  
  64. static void alloc_mem(void)
  65. {
  66.     register int i;
  67.     
  68.     seqlen_array = (int *)ckalloc( (MAXN+1) * sizeof (int));
  69.  
  70.     output_index = (int *)ckalloc( (MAXN+1) * sizeof (int));
  71.  
  72.     seq_array = (char **)ckalloc( (MAXN + 1) * sizeof (char *) );
  73.     for(i=0;i<MAXN+1;i++)
  74.         seq_array[i]=(char *)ckalloc( (MAXLEN +2) * sizeof (char));
  75.                 
  76.     names = (char **)ckalloc( (MAXN+1) * sizeof (char *) );
  77.     for(i=0;i<MAXN+1;i++)
  78.         names[i] = (char *)ckalloc(MAXNAMES+1 * sizeof (char));
  79.         
  80.     titles = (char **)ckalloc( (MAXN) * sizeof (char *) );
  81.     for(i=0;i<MAXN;i++)
  82.         titles[i] = (char *)ckalloc(MAXTITLES+1 * sizeof (char));
  83.  
  84.     tmat = (double **) ckalloc( (MAXN+1) * sizeof (double *) );
  85.     for(i=0;i<MAXN+1;i++)
  86.         tmat[i] = (double *)ckalloc( (MAXN+1) * sizeof (double) );
  87.  
  88.     paramstr = (char *)ckalloc(1024 * sizeof(char));
  89.  
  90.     /* statics from prfalign.c -- dgg */
  91.     /* static int     displ[2*MAXLEN+1];
  92.      static int        gaps[MAXLEN];
  93.      static int HH[MAXLEN+1], DD[MAXLEN+1], RR[MAXLEN+1], SS[MAXLEN+1];
  94.     */
  95.     displ= (int *) ckalloc( (2*MAXLEN+1) * sizeof(int));
  96.     gaps = ( int* )ckalloc( (MAXLEN+1) * sizeof(int));
  97.     HH = (int*) ckalloc( (MAXLEN+1) * sizeof(int));
  98.     DD = (int*) ckalloc( (MAXLEN+1) * sizeof(int));
  99.     RR = (int*) ckalloc( (MAXLEN+1) * sizeof(int));
  100.     SS = (int*) ckalloc( (MAXLEN+1) * sizeof(int));
  101. }
  102.  
  103.  
  104. #ifdef MACINTOSH
  105. void RealMain( int argc, char** argv)
  106. #else
  107. void     main(argc,argv)
  108. int argc;
  109. char *argv[];
  110. #endif
  111. {
  112.     int i;
  113.  
  114. #if NOTNOW
  115. #if defined( THINK_C) || defined(__MWERKS__)
  116.     argc=ccommand(&argv);
  117. #endif
  118. #endif
  119.  
  120.     alloc_mem();
  121.         init_amenu();
  122.         init_matrix();
  123.     
  124.     fill_chartab();
  125.     if(argc>1) {
  126.         paramstr[0]=EOS;
  127.         for(i=1;i<argc;++i) {
  128.             strcat(paramstr,argv[i]);
  129.             /* strcat(paramstr,"/"); /* dgg added this - why is it needed ?? */
  130.             }
  131.         usemenu=FALSE;
  132.         parse_params();
  133.     }
  134.     usemenu=TRUE;
  135.  
  136.     main_menu();
  137. }
  138.